package com.decent.ejfadmin.config;

import com.decent.ejfadmin.common.bean.SupUser;
import com.decent.ejfadmin.common.enums.SupWebErrorCode;
import com.decent.ejfadmin.common.exception.ErrorCodeException;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;

/**
 * describe:sup平台配置类
 *
 * @author JunLei He
 * @date 2018年07月16日
 */
@Slf4j
@Data
@Configuration
@PropertySource("classpath:plat-config.properties")
public class PlatConfig {
    /**
     * sup平台加密秘钥
     */
    @Value("${desKey}")
    public String desKey;
    /**
     * sup收卡慢销模板id
     */
    @Value("${slowModelId}")
    public String slowModelId;
    /**
     * sup收卡未登录模板
     */
    @Value("${nonLonginModel}")
    public String nonLonginModel;
    /**
     * sup收卡超快销模板Id
     */
    @Value("${quickModelId}")
    public String quickModelId;
    /**
     * 二级认证金额
     */
    @Value("${levelTwo}")
    public Long levelTwo;

    /**
     * 三级认证金额
     */
    @Value("${levelThree}")
    public Long levelThree;

    /**
     * 四级认证金额
     */
    @Value("${levelFour}")
    public Long levelFour;

    /**
     * 销卡速度和夏卡模板之间的转化(只有慢销和超快销)
     *
     * @param speed   销卡速度 0慢速   2快速
     * @param supUser 用户信息
     * @return 返回
     */
    public Long supplySpeedParseModel(Integer speed, SupUser supUser) {

        switch (speed) {
            case 0:
                return Long.valueOf(slowModelId);
            case 1:
                return supUser.getSupplyModel();
            case 2:
                return Long.valueOf(quickModelId);
            default:
                throw new ErrorCodeException(SupWebErrorCode.PARAM_ERROR.getError());
        }
    }
}
